<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="./templates/templateMenu.xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.prime.com.tr/ui"
                xmlns:h="http://java.sun.com/jsf/html">

    <ui:define name="content">
        <style type="text/css">
            .alignTop{
                vertical-align: top;
            }
        </style>

        <script type="text/javascript"> 
            function confirmFunction(opcion) {
                switch(opcion){
                    case 0: updateConfirmProbSalud.jq.click();
                        break;
                    case 1: updateConfirmBaja.jq.click();
                        break;
                    case 2: updateConfirmModificacion.jq.click();
                        break;
                    case 3: updateConfirmModificacionPadres.jq.click();
                        break;
                }
            }
        </script>

        <p:panel header="Mantenimiento de Alumnos">
            <p:dataTable id="dtAlumnos" 
                         widgetVar="dtAlumnos"
                         rows="10" 
                         paginator="true" 
                         var="varAlumnos" 
                         value="#{alumnoBean.listaAlumnos}">

                <f:facet name="header">  
                    <h:panelGrid style="width: 200px;" 
                                 columnClasses="alignLeft,alignLeft,alignLeft" 
                                 columns="3">
                        <h:outputText value="Buscar: " />  
                        <p:inputText  id="globalFilter" 
                                      onkeyup="dtAlumnos.filter()" 
                                      style="width:150px" />  
                    </h:panelGrid> 
                </f:facet>  

                <p:column filterBy="#{alumnoBean.getStringDate(varAlumnos[1].daFecNacimiento)}" filterStyle="display:none"
                          headerText="Fecha de Nacimiento" 
                          style="text-align: center; width: 50px;">
                    <h:outputText value="#{alumnoBean.getStringDate(varAlumnos[1].daFecNacimiento)}"/>
                </p:column>

                <p:column filterBy="#{varAlumnos[1].vcNombres}" filterStyle="display:none"
                          headerText="Nombre" 
                          style="text-align: left">
                    <h:outputText value="#{varAlumnos[1].vcNombres} #{varAlumnos[1].vcApellidos}"/>
                </p:column>

                <p:column filterBy="#{varAlumnos[1].vcSexo}" filterStyle="display:none"
                          headerText="Sexo del Alumno" 
                          style="text-align: center; width: 50px;">
                    <h:outputText value="#{varAlumnos[1].vcSexo}"/>
                </p:column>

                <p:column filterBy="#{varAlumnos[0].vcEstado}" filterStyle="display:none"
                          headerText="Estado" 
                          style="text-align: center; width: 50px;">
                    <h:outputText value="#{varAlumnos[0].vcEstado}"/>
                </p:column>

                <p:column style="width: 150px; text-align: center; " headerText="Acciones" >  
                    <f:facet name="header"/>
                    <p:commandButton  image="ui-icon-pencil" 
                                      title="Modificar Alumno"
                                      action="#{alumnoBean.modificar}"
                                      oncomplete="alumnoDialogo.show();"
                                      update="frmAlumno frmSacramentos frmProbSalud dtProbSalud"
                                      process="@this">  
                        <f:setPropertyActionListener value="#{varAlumnos}" target="#{alumnoBean.selectedAlumno}" />
                    </p:commandButton>  

                    <p:commandButton  image="ui-icon-refresh" 
                                      title="Movimientos del Alumno" 
                                      action="#{alumnoBean.populateMovimientosAlumno}"
                                      oncomplete="movimientosDialogo.show();"
                                      update="dtMovimientos frmMovimiento"
                                      process="@this">  
                        <f:setPropertyActionListener value="#{varAlumnos}" target="#{alumnoBean.selectedAlumno}" />
                    </p:commandButton> 

                    <p:commandButton  image="ui-icon-person" 
                                      title="Padres del Alumno" 
                                      action="#{alumnoBean.cargarPadres}"
                                      update="frmPadre frmMadre frmEstadoVida"
                                      oncomplete="padresDialogo.show();"
                                      process="@this">  
                        <f:setPropertyActionListener value="#{varAlumnos}" target="#{alumnoBean.selectedAlumno}" />
                    </p:commandButton> 
                </p:column> 
            </p:dataTable>
        </p:panel>

        <p:outputPanel id="padresAlumnoDialogo">
            <p:dialog header="Ingrese los Datos" 
                      widgetVar="padresDialogo" 
                      minWidth="800" 
                      modal="true" 
                      visible="#{not empty facesContext.maximumSeverity}">
                <p:fieldset legend="Cambiar Padres">
                    <h:panelGrid columns="2">
                        <h:panelGrid columns="3" id="frmPadre">
                            <h:outputText value="Padre:"/>
                            <p:inputText disabled="true" 
                                         value="#{alumnoBean.padre}"/>
                            <h:outputText/>

                            <h:outputText value="Buscar Padre:"/>
                            <p:autoComplete id="txtPadre"
                                            value="#{alumnoBean.buscarPadre}"
                                            selectListener="#{alumnoBean.onSelectNomPadre}" 
                                            onSelectUpdate="frmPadre" 
                                            completeMethod="#{autoCompleteBean.completeNombre}">
                                <f:attribute name="field" value="Femenino"/>
                                <f:attribute name="tipoPersona" value="Padre"/>
                            </p:autoComplete>
                            <p:commandButton id="cmdLimpiarPadre" 
                                             value="Limpiar" 
                                             process="@this frmPadre" 
                                             action="#{alumnoBean.limpiarFrmPadres}"
                                             update="frmPadre">
                                <f:attribute name="limpiar" value="limpiarPadre"/>
                            </p:commandButton>

                            <h:outputText value="Nombre Padre:"/>
                            <p:inputText disabled="true"
                                         value="#{alumnoBean.personaPadre.vcNombres}"/>
                            <h:outputText/>

                            <h:outputText value="Apellidos:"/>
                            <p:inputText disabled="true"
                                         value="#{alumnoBean.personaPadre.vcApellidos}"/>
                            <h:outputText/>

                            <h:outputText value="Dirección:"/>
                            <p:inputTextarea disabled="true" rows="4"
                                             value="#{alumnoBean.personaPadre.vcDireccion}"/>
                            <h:outputText/>
                        </h:panelGrid>
                        <h:panelGrid columns="3" id="frmMadre">
                            <h:outputText value="Madre:"/>
                            <p:inputText disabled="true"
                                         value="#{alumnoBean.madre}"/>
                            <h:outputText/>

                            <h:outputText value="Buscar Madre:"/>
                            <p:autoComplete id="txtMadre"
                                            value="#{alumnoBean.buscarMadre}"
                                            selectListener="#{alumnoBean.onSelectNomPadre}" 
                                            onSelectUpdate="frmMadre" 
                                            completeMethod="#{autoCompleteBean.completeNombre}">
                                <f:attribute name="field" value="Masculino"/>
                                <f:attribute name="tipoPersona" value="Madre"/>
                            </p:autoComplete>
                            <p:commandButton id="cmdLimpiarMadre" 
                                             value="Limpiar" 
                                             process="@this frmMadre" 
                                             action="#{alumnoBean.limpiarFrmPadres}"
                                             update="frmMadre">
                                <f:attribute name="limpiar" value="limpiarMadre"/>
                            </p:commandButton>

                            <h:outputText value="Nombre Madre:"/>
                            <p:inputText disabled="true"
                                         value="#{alumnoBean.personaMadre.vcNombres}"/>
                            <h:outputText/>

                            <h:outputText value="Apellidos:"/>
                            <p:inputText disabled="true"
                                         value="#{alumnoBean.personaMadre.vcApellidos}"/>
                            <h:outputText/>

                            <h:outputText value="Dirección:"/>
                            <p:inputTextarea disabled="true" rows="4"
                                             value="#{alumnoBean.personaMadre.vcDireccion}"/>
                            <h:outputText/>
                        </h:panelGrid>
                    </h:panelGrid>
                </p:fieldset>
                <p:fieldset legend="Estado de Vida">
                    <h:panelGrid columns="3" id="frmEstadoVida">
                        <h:outputText value="Elija una opción:"/>
                        <h:selectOneMenu id="cboEstadoPadres"
                                         value="#{alumnoBean.tempEstadoPadres}"
                                         required="#{param['requireGroup4'] == '1'}">
                            <f:selectItem itemLabel="-Seleccione una Opción-" value="#{null}" />
                            <f:selectItem itemLabel="Matrimonio Civil-Religioso" itemValue="MCR" />
                            <f:selectItem itemLabel="Matrimonio Civil" itemValue="MC"/>
                            <f:selectItem itemLabel="Acompañados" itemValue="A"/>
                            <f:selectItem itemLabel="Separados" itemValue="S"/>
                        </h:selectOneMenu>
                        <p:message for="cboEstadoPadres" display="icon"/>     
                    </h:panelGrid>
                </p:fieldset>
                <p:commandButton  image="ui-icon-check"
                                  title="Aceptar" 
                                  value="Aceptar"
                                  action="#{alumnoBean.cambiarPadres}"
                                  update="frmPadre frmMadre frmEstadoVida padresAlumnoDialogo dtAlumnos msg"
                                  oncomplete="confirmFunction(3);"
                                  process="@this frmPadre frmMadre frmEstadoVida"> 
                    <f:param name="requireGroup4" value="1"/>
                </p:commandButton> 
            </p:dialog>
        </p:outputPanel>

        <p:outputPanel id="movimientosAlumnoDialogo" >
            <p:dialog header="Ingrese los Datos" 
                      widgetVar="movimientosDialogo" 
                      minWidth="600" 
                      modal="true" 
                      onCloseUpdate="frmMovimiento movimientosDialogo"
                      visible="#{(facesContext.maximumSeverity.ordinal==0 or facesContext.maximumSeverity.ordinal==null)?false:true}">
                <p:fieldset legend="Movimientos del Alumno">
                    <h:panelGrid columns="4" id="frmMovimiento">
                        <h:outputText value="Movimiento:"/>
                        <h:selectOneMenu id="cboMovimiento" 
                                         value="#{alumnoBean.estadoAlumno.vcTipMovimiento}"
                                         required="#{param['requireGroup3'] == '1'}">
                            <f:selectItem itemLabel="-Seleccion una Opción-" value="#{null}"/>
                            <f:selectItem itemLabel="Retiro" itemValue="Retiro"/>
                            <f:selectItem itemLabel="Egreso" itemValue="Egreso"/>
                            <f:selectItem itemLabel="Expulsión" itemValue="Expulsión"/>
                            <f:selectItem itemLabel="Reingreso" itemValue="Reingreso"/>
                        </h:selectOneMenu>
                        <p:message for="cboMovimiento" display="icon"/>
                        <h:outputText/>

                        <h:outputText value="Razón del Movimiento:"/>
                        <p:inputTextarea id="txtRazon" 
                                         maxHeight="35" 
                                         value="#{alumnoBean.estadoAlumno.vcRazon}"
                                         required="#{param['requireGroup3'] == '1'}"/>
                        <p:message for="txtRazon" display="icon"/>
                        <p:commandButton  image="ui-icon-check"
                                          title="Aceptar" 
                                          value="Aceptar"
                                          action="#{alumnoBean.addMovimiento}"                                          
                                          update="frmMovimiento dtMovimientos movimientosAlumnoDialogo dtAlumnos msg"
                                          oncomplete="confirmFunction(2);"
                                          process="@this frmMovimiento" > 
                            <f:param name="requireGroup3" value="1" />
                        </p:commandButton>
                    </h:panelGrid> 
                </p:fieldset>

                <p:dataTable var="varMovimientos"
                             id="dtMovimientos" 
                             widgetVar="dtMovimientos" 
                             paginator="true" rows="5"
                             value="#{alumnoBean.listaEstadoAlumnos}" 
                             onRowEditUpdate="msg">

                    <p:column style="text-align: center; width: 50px;" headerText="Movimiento">
                        <h:outputText value="#{varMovimientos.vcTipMovimiento}"/>
                    </p:column> 

                    <p:column style="text-align: center" headerText="Razon">
                        <h:outputText value="#{varMovimientos.vcRazon}"/>
                    </p:column> 

                    <p:column style="text-align: center; width: 50px;" headerText="Fecha">
                        <h:outputText value="#{alumnoBean.getStringDate(varMovimientos.vcFecMovimiento)}"/>
                    </p:column> 
                </p:dataTable>   
            </p:dialog>
        </p:outputPanel>

        <p:outputPanel id="ingresoAlumnoDialogo">
            <p:dialog header="Ingrese los Datos" 
                      widgetVar="alumnoDialogo" 
                      minWidth="700" 
                      modal="true"                       
                      visible="#{(facesContext.maximumSeverity.ordinal==0 or facesContext.maximumSeverity.ordinal==null)?false:true}">
                <h:panelGrid columns="2" columnClasses="alignTop,alignTop" id="frmAlumno">
                    <h:panelGrid columns="3">
                        <h:outputText value="Nombres Alumno:"/>
                        <p:inputText id="txtNombreAlumno"
                                     value="#{alumnoBean.persona.vcNombres}"
                                     required="#{param['requireGroup1']=='1'}">
                        </p:inputText>
                        <p:message for="txtNombreAlumno" display="icon"/>

                        <h:outputText value="Apellidos:"/>
                        <p:inputText id="txtApelAlumno"
                                     value="#{alumnoBean.persona.vcApellidos}"
                                     required="#{param['requireGroup1']=='1'}">
                        </p:inputText>
                        <p:message for="txtApelAlumno" display="icon"/>

                        <h:outputText value="Sexo:"/>
                        <h:selectOneRadio id="optSexoAlumno" 
                                          value="#{alumnoBean.persona.vcSexo}">
                            <f:selectItem itemLabel="Masculino" itemValue="Masculino"/>
                            <f:selectItem itemLabel="Femenino" itemValue="Femenino"/>
                        </h:selectOneRadio>
                        <h:outputText/>

                        <h:outputText value="Departamento:"/>
                        <h:selectOneMenu id="cboDepartamento" style="width: 200px"
                                         value="#{alumnoBean.selectedDepartamento}"
                                         onchange="onSelectDepartamento()"
                                         required="#{param['requireGroup1'] == '1'}">
                            <f:selectItem itemLabel="-Seleccione una Opción-" value="#{null}"/>
                            <f:selectItems value="#{alumnoBean.cargarUbicaciones()}"/>
                        </h:selectOneMenu> 
                        <p:message for="cboDepartamento" display="icon" />

                        <h:outputText value="Lugar de Nacimiento:"/>
                        <h:selectOneMenu id="cboLugarNacimiento" style="width: 200px"
                                         value="#{alumnoBean.selectedUbicacion}"
                                         required="#{param['requireGroup1'] == '1'}">
                            <f:selectItem itemLabel="-Seleccione una Opción-" value="#{null}"/>
                            <f:selectItems value="#{alumnoBean.listaUbicaciones}" />
                        </h:selectOneMenu> 
                        <p:message for="cboLugarNacimiento" display="icon" />

                        <h:outputText value="Fecha de Nacimiento:"/>                                                                                     
                        <p:calendar id="txtFecNacimiento"
                                    value="#{alumnoBean.persona.daFecNacimiento}"
                                    showOn="button" 
                                    required="#{param['requireGroup1'] == '1'}"
                                    locale="es"
                                    navigator="true"
                                    pattern="dd/MM/yyyy" 
                                    readOnlyInputText="true" />
                        <p:message for="txtFecNacimiento" display="icon" />

                        <h:outputText value="Procedencia:"/>
                        <p:inputTextarea id="txtInstProcedencia" maxHeight="35"
                                         value="#{alumnoBean.alumno.vcInstProcedencia}"
                                         title="Instituto de Procedencia"/>
                        <p:message for="txtInstProcedencia" display="icon" />
                    </h:panelGrid>
                    <h:panelGrid columns="3">
                        <h:outputText value="NIE del Alumno:"/>
                        <p:spinner id="txtNumNie" size="12" 
                                   value="#{alumnoBean.alumno.nuNie}"
                                   min="000000000001"
                                   max="999999999999"
                                   stepFactor="1"
                                   required="#{param['requireGroup1'] == '1'}"/>
                        <p:message for="txtNumNie"/>

                        <h:outputText value="Número de Partida:"/>
                        <p:spinner id="txtNumPartida" size="12" 
                                   value="#{alumnoBean.alumno.nuPartida}"
                                   min="00001"
                                   max="99999"
                                   stepFactor="1" 
                                   required="#{param['requireGroup1'] == '1'}"/>
                        <p:message for="txtNumPartida"/>

                        <h:outputText value="Número de Folio:"/>
                        <p:spinner id="txtNumFolio" size="12" 
                                   value="#{alumnoBean.alumno.nuFolio}"
                                   min="00001"
                                   max="99999"
                                   stepFactor="1"
                                   required="#{param['requireGroup1'] == '1'}"/>
                        <p:message for="txtNumFolio"/>

                        <h:outputText value="Número de Libro:"/>
                        <p:spinner id="txtNumLibro" size="12" 
                                   value="#{alumnoBean.alumno.nuLibro}"
                                   min="00001"
                                   max="99999"
                                   stepFactor="1"
                                   required="#{param['requireGroup1'] == '1'}"/>
                        <p:message for="txtNumLibro"/>

                        <h:outputText value="Año Libro:"/>
                        <p:spinner id="txtAnio" size="12" 
                                   value="#{alumnoBean.alumno.nuAnioLibro}"
                                   min="1950"
                                   stepFactor="1"
                                   required="#{param['requireGroup1'] == '1'}"/>
                        <p:message for="txtAnio"/>
                    </h:panelGrid>
                </h:panelGrid>
                <h:panelGrid columns="7" id="frmSacramentos" >
                    <h:outputText value="Sacramentos:" />
                    <h:selectBooleanCheckbox id="ckbBautismo"
                                             value="#{alumnoBean.bautismo}" />   
                    <h:outputText value="Bautismo"/>
                    <h:selectBooleanCheckbox id="ckbComunion" 
                                             value="#{alumnoBean.comunion}" />   
                    <h:outputText value="Comunión"/>
                    <h:selectBooleanCheckbox id="ckbConfirmacion"
                                             value="#{alumnoBean.confirmacion}" />   
                    <h:outputText value="Confirmación"/>
                </h:panelGrid>

                <p:fieldset legend="Otros Datos" >
                    <h:panelGrid columns="4" id="frmProbSalud" >
                        <h:outputText value="Problemas de Salud:" />
                        <p:inputText id="txtProbSalud" 
                                     value="#{alumnoBean.problemaSalud.vcDescripcion}"
                                     required="#{param['requireGroup2'] == '1'}"/>

                        <p:commandLink id="cmdProbSalud" 
                                       value="Agregar" 
                                       action="#{alumnoBean.addProblema}"
                                       process="@this frmProbSalud"
                                       update="frmProbSalud dtProbSalud"
                                       style="text-decoration: none;" >
                            <f:param name="requireGroup2" value="1"/>
                        </p:commandLink>
                        <p:message for="txtProbSalud" display="icon" />
                    </h:panelGrid>         

                    <p:dataTable var="varProbSalud"
                                 id="dtProbSalud" 
                                 widgetVar="dtProbSalud"                                        
                                 value="#{alumnoBean.problemasDeSalud}" 
                                 onRowEditUpdate="msg">

                        <p:column style="text-align: center" headerText="Problema de Salud">
                            <h:outputText value="#{varProbSalud.vcDescripcion}"/>
                        </p:column> 

                        <p:column style="text-align: center; width: 75px;" headerText="Acciones" >  
                            <f:facet name="header"/>
                            <p:commandButton  image="ui-icon-trash"
                                              title="Eliminar Problema de Salud"
                                              action="#{alumnoBean.removeProblema}"
                                              oncomplete="confirmFunction(0);"
                                              update="frmProbSalud dtProbSalud"
                                              process="@this"> 
                                <f:setPropertyActionListener target="#{alumnoBean.selectedProblema}"
                                                             value="#{varProbSalud}"/>
                            </p:commandButton> 
                        </p:column>
                    </p:dataTable>    
                </p:fieldset>
                <h:panelGrid styleClass="columnRight" >
                    <p:commandButton value="Aceptar" 
                                     image="ui-icon-check"
                                     action="#{alumnoBean.confirmarModificacion}"
                                     update="frmAlumno frmSacramentos frmProbSalud dtProbSalud ingresoAlumnoDialogo dtAlumnos msg"
                                     oncomplete="confirmFunction(2);" 
                                     process="@this frmAlumno frmSacramentos">
                        <f:param name="requireGroup1" value="1"/>
                    </p:commandButton>
                </h:panelGrid>
            </p:dialog>
        </p:outputPanel>

        <p:remoteCommand name="onSelectDepartamento" process="@this cboDepartamento" 
                         update="cboLugarNacimiento" action="#{alumnoBean.onSelectDepartamento}"/>

        <p:commandButton style="visibility: hidden" 
                         widgetVar="updateConfirmProbSalud"
                         update="dtProbSalud"/>

        <p:commandButton style="visibility: hidden" 
                         widgetVar="updateConfirmBaja"
                         oncomplete="dtAlumnos.filter()"
                         update="movimientosAlumnoDialogo dtAlumnos msg"/>

        <p:commandButton style="visibility: hidden" 
                         widgetVar="updateConfirmModificacion"
                         oncomplete="dtAlumnos.filter()"
                         update="inrgesoAlumnoDialogo dtAlumnos msg"/>

        <p:commandButton style="visibility: hidden" 
                         widgetVar="updateConfirmModificacionPadres"
                         oncomplete="dtAlumnos.filter()"
                         update="padresAlumnoDialogo dtAlumnos msg"/>
    </ui:define>

</ui:composition>
